package com.kkb.kkbadmin.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.kkb.kkbadmin.domain.ProjectRegister;
import com.kkb.kkbadmin.domain.User;

import java.util.List;

/**
 * @ClassName ProjectRegisterService
 * @Description 项目报名
 * @Author mzj
 * @Date 2021/8/13
 **/
public interface ProjectRegisterService extends IService<ProjectRegister> {
    /**
     * 插入数据到报名表
     *
     * @param userId    用户信息
     * @param projectId 项目id
     * @return void
     */
    public void register(Long userId, Long projectId);

    /**
     * 根据项目Id查询报名细信息
     *
     * @param projectId 项目Id
     * @return ProjectRegister
     */
    List<ProjectRegister> getRegisterProjectInfo(Long projectId);

    /**
     * 统计项目已报名人数
     *
     * @param user      用户对象
     * @param projectId 项目id
     * @param roleId    角色id
     * @return 报名人数
     */
    int count(User user, Long projectId, int roleId);

    /**
     * 查询用户已完成项目数
     *
     * @param userId 用户Id
     * @return int
     */
    int completedProjects(Long userId);

    /**
     * 修改项目报名状态
     *
     * @param userId    用户id
     * @param projectId 项目id
     * @param status    报名状态
     */
    void updateStatus(Long userId, Long projectId, Integer status);

    /**
     * 项目导师审核添加学生 ：修改学生用户报名表状态为已报名
     *
     * @param userList
     * @param projectId
     */
    void auditStu(List<User> userList, Long projectId);
}
